package com.iteaj.iboot.plugin.crawler.entity;

import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.iteaj.framework.BaseEntity;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.iteaj.framework.mybatis.handler.FastjsonTypeHandler;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 * 采集的站点内容
 * </p>
 *
 * @author iteaj
 * @since 2024-10-05
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("crw_site_content")
public class SiteContent extends BaseEntity {

    /**
     * 采集的记录id
     */
    private String contentId;

    /**
     * 内容标题
     */
    private String title;

    /**
     * 别名
     */
    private String alias;

    /**
     * 所属站点
     */
    private Long sitesId;

    /**
     * 类型
     */
    private String type;

    /**
     * 价格
     */
    private BigDecimal price;

    /**
     * 采集内容
     */
    private String content;

    /**
     * 价格文本
     */
    private String priceText;

    /**
     * 扩展256
     */
    private String ext256;

    /**
     * 扩展512
     */
    private String ext512;

    /**
     * 扩展文本
     */
    private String extText;

    /**
     * 封面地址
     */
    private String coverUrl;

    /**
     * 扩展json
     */
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private JSON extJson;

    /**
     * 图片地址列表
     */
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private JSON images;

    /**
     * 视频地址列表
     */
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private JSON videos;

    /**
     * 评价
     */
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private JSON comments;

    /**
     * 佣金
     */
    private Double cosFee;

    /**
     * 佣金比例
     */
    private Double cosRate;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 处理状态(采集中, 待处理, 处理中, 完成)
     */
    private String status;

    /**
     * 媒体信息
     */
    @TableField(exist = false)
    private List<SiteContentMedia> medias;

    public static final String[] STATUS = new String[] {"采集中", "待处理", "处理中", "完成"};
}
